// [[ OnflowGenerator File UUID: a33d429b85dd46bf8332688b97017084  ]]
package com.itdct.onflow.system.file.qo

import com.itdct.onflow.core.qo.BaseQo
import com.itdct.onflow.core.type.Add
import com.itdct.onflow.core.type.Update
import io.swagger.v3.oas.annotations.media.Schema
import jakarta.validation.constraints.NotBlank
import jakarta.validation.constraints.NotNull
import org.hibernate.validator.constraints.Length
import java.util.*

/**
 * @author DCTANT
 * @date 2025-09-23 16:16:15
 * @version 1.0
 * @description 系统文件管理编辑入参
 */
@Schema(name = "系统文件管理编辑入参", description = "系统文件管理编辑入参")
class SysFileEditQo : BaseQo() {
// [[ OnflowGenerator Range (- fields -) Start ]]
    @Schema(title = "文件名", example = "")
    @NotBlank(message = "请输入文件名", groups = [Add::class, Update::class])
    @Length(max = 300, message = "文件名不能超过300个字符", groups = [Add::class, Update::class])
    var fileName: String? = null

    @Schema(title = "原文件名", example = "")
    @NotBlank(message = "请输入原文件名", groups = [Add::class, Update::class])
    @Length(max = 300, message = "原文件名不能超过300个字符", groups = [Add::class, Update::class])
    var originFileName: String? = null

    @Schema(title = "文件存储路径", example = "")
    @NotBlank(message = "请输入文件存储路径", groups = [Add::class, Update::class])
    @Length(max = 500, message = "文件存储路径不能超过500个字符", groups = [Add::class, Update::class])
    var storePath: String? = null

    @Schema(title = "容器类型", example = "")
    @NotBlank(message = "请输入容器类型", groups = [Add::class, Update::class])
    @Length(max = 64, message = "容器类型不能超过64个字符", groups = [Add::class, Update::class])
    var containerType: String? = null

    @Schema(title = "所属模块", example = "")
    @NotBlank(message = "请输入所属模块", groups = [Add::class, Update::class])
    @Length(max = 100, message = "所属模块不能超过100个字符", groups = [Add::class, Update::class])
    var moduleName: String? = null

    @Schema(title = "平台类型", example = "")
    @NotBlank(message = "请输入平台类型", groups = [Add::class, Update::class])
    @Length(max = 100, message = "平台类型不能超过100个字符", groups = [Add::class, Update::class])
    var platformType: String? = null

    @Schema(title = "md5值", example = "")
    @Length(max = 64, message = "md5值不能超过64个字符", groups = [Add::class, Update::class])
    var md5: String? = null

    @Schema(title = "文件大小", example = "")
    @NotNull(message = "请输入文件大小", groups = [Add::class, Update::class])
    var fileSize: Long? = null

    @Schema(title = "存储桶名称", example = "")
    @Length(max = 200, message = "存储桶名称不能超过200个字符", groups = [Add::class, Update::class])
    var bucketName: String? = null

    @Schema(title = "文件来源", example = "")
    @NotNull(message = "请输入文件来源", groups = [Add::class, Update::class])
    var sourceType: Int? = null

    @Schema(title = "文件过期时间", example = "")
    var expireDate: Date? = null

    @Schema(title = "文件等级", example = "")
    @NotNull(message = "请输入文件等级", groups = [Add::class, Update::class])
    var fileGrade: Int? = null

// [[ OnflowGenerator Range (- fields -) End ]]
}